/*
4.  Pop Sequence  是2013年PAT春季考试真题，
考察队堆栈的基本概念的掌握，应可以一试。
*/

#include <stdio.h>
#include <stdbool.h>

bool judge_valid(int N, int M, 
                 int save_stack[], int input_array[]){
    int M_i = 0;
    int input_i = 0;
    for (int i=1; i<N+1; ++i) {
        if (M_i >=M) {return false;}
        if (i == input_array[input_i]) {
            input_i++;
        } else if(M_i > 0){
            if (save_stack[M_i-1] == input_array[input_i]) {
                input_i++;
                M_i--;
                i--;
            } else {
                save_stack[M_i] = i;
                M_i++;
            }
        } else {
            save_stack[M_i] = i;
            M_i++;
        }
    }
    while (M_i > 0) {
        M_i--;
        if (save_stack[M_i] == input_array[input_i]) {
            input_i++;
        }
        else{
            return false;
        }
    }
    if (input_i==N){
        return true;
    } else {
        return false;
    }
}
int main(int argc, char* argv[]) {
    int M,N,K;
    scanf("%d %d %d", &M, &N, &K);
    int save_stack[M];
    for (int i = 0; i < K; ++i) {
        int input_array[N];
        for (int j = 0; j<N; ++j)
            scanf("%d", &input_array[j]);
        bool res = judge_valid(N, M, save_stack, input_array);
        if (res) printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}